﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace tp5_colas
{
    class Eleccion
    {

        private List<Item_Eleccion> lstEleccion;

        public Eleccion()
        {
            lstEleccion = new List<Item_Eleccion>();
            //inicializo la tabla de demanda            
            Item_Eleccion i1 = new Item_Eleccion("Compra y se va", (double)30 / 100);
            Item_Eleccion i2 = new Item_Eleccion("Compra y se sienta", (double)25 / 100);
            Item_Eleccion i3 = new Item_Eleccion("Solo se sienta", (double)20 / 100);
            Item_Eleccion i4 = new Item_Eleccion("Solo esta de paso", (double)15 / 100);

            lstEleccion.Add(i1);
            lstEleccion.Add(i2);
            lstEleccion.Add(i3);
            lstEleccion.Add(i4);            
            //Ordeno la lista

            calcularIntervalos();

        }

        private void calcularIntervalos()
        {
            double minimo = 0;
            foreach (Item_Eleccion item in lstEleccion)
            {
                item.Min_interval = minimo;
                item.Max_interval = minimo + item.Probabilidad * 100-1;
                minimo = item.Max_interval+1;                
            } 
        }

        //Este método debe devolver la demanda de acuerdo al random que ingresa por parámetro
        public String getEleccion(double random_number)
        {
            //int random = (int)(random_number * 100);
            int random = (int)random_number;

            foreach (Item_Eleccion item in lstEleccion)
            {
                if (random >= item.Min_interval && random <= item.Max_interval)
                {
                    return item.eleccion;
                }                
            }
            return ""; 
        }
    }
}
